#ifndef MENU_H_
#define MENU_H_

#include <map>
#include <iostream>
#include "MenuItem.h"

typedef map<int,MenuItem*> MenuMapType;
typedef map<int,Command*> CommandsMap;
typedef map<int,MenuItem*> MenuItemsMap;

class Menu {
private:
	MenuMapType items;

public:
	CommandsMap commands;
	MenuItemsMap opciones;

	Menu();
	virtual ~Menu();

	void add(MenuItem& menuItem);
	void display();
	virtual void select(int option);
	virtual void update() = 0;
	void clearItems() {items.clear();};
};

#endif /* MENU_H_ */
